1. Field of the Invention
The present invention generally relates to electronic design automation (EDA). More particularly, the present invention relates to server systems accessible by multiple clients.
2. Description of Related Art
In general, electronic design automation (EDA) is a computer-based tool configured in various workstations to provide designers with automated or semi-automated tools for designing and verifying user's custom circuit designs. EDA is generally used for creating, analyzing, and editing any electronic design for the purpose of simulation, emulation, prototyping, execution, or computing. EDA technology can also be used to develop systems (i.e., target systems) which will use the user-designed subsystem or component. The end result of EDA is a modified and enhanced design, typically in the form of discrete integrated circuits or printed circuit boards, that is an improvement over the original design while maintaining the spirit of the original design.
The value of software simulating a circuit design followed by hardware emulation is recognized in various industries that use and benefit from EDA technology. Nevertheless, current software simulation and hardware emulation/acceleration are cumbersome for the user because of the separate and independent nature of these processes. For example, the user may want to simulate or debug the circuit design using software simulation for part of the time, use those results and accelerate the simulation process using hardware models during other times, inspect various register and combinational logic values inside the circuit at select times, and return to software simulation at a later time, all in one debug/test session. One solution was provided in U.S. Pat. No. 6,009,256 (assigned to Axis Systems, Inc.) where a simulator is integrated with a hardware emulator in a unique way to increase flexibility.
To conserve resources, it is particularly beneficial to allow multiple users to access this simulator/emulator system from their individual workstations. Although the prior art does not contain any such simulation/emulation system as described in U.S. Pat. No. 6,009,256 (assigned to Axis Systems, Inc.), other art can be examined to determine how others attempted to solve the problem of multiple users accessing a common resource.
Prior art systems can be classified under two categories: (1) switched systems, and (2) bussed systems. Switched systems employ switches that connect the processor to resources in a point-to-point manner. For each switched data path, only two connections exist. An example is IBM mainframes as described in U.S. Pat. No. 6,094,715 which details a massively parallel processing engine which interconnects 128,000 processors together through crossbar switches. This system connects processors to memories and other resources in a point-to-point manner. It does not connect multiple host busses to multiple modules in a simulation/emulation server.
Bussed systems employ a common electrical bus that interconnects the processor to the memory and I/O controllers Bus systems inside personal computers (PC) follow this model. Some examples are the ISA/EISA standard and the PCI standard. However, these bus systems are passive and the connected devices access the bus in a time-shared manner through request-grant handshaking lines. These types of systems do not dynamically allocate multiple resources to multiple users. Another drawback of the bussed systems is that they incur the overhead of switching among resources on a message-by-message basis.
Accordingly, a need exists in the industry for a system or method that addresses problems raised above by currently known simulation systems, hardware emulation systems, hardware accelerators, co-simulation, and coverification systems. In particular, a need exists for a simulation/emulation server system that allows multiple hosts (workstations) to share and access multiple simulation and emulation resources in a fast and reliable way to switch the individual host's bussed data streams between emulation or simulation resources without embedding any control information in the data stream of the host system bus itself. Also, the system must allow reassignment of resources electronically; that is, without mechanically moving cables or switches.